package it.eg.managedcor.interfaces;

import it.eg.managedcor.exceptions.RollbackException;

/**
 * An implementer, with the {@link it.eg.managedcor.interfaces.Rollbackable#rollback(ProcessSessionData)} 
 * method, must undo all the actions it performed.
 * 
 * @author Emanuele Gherardini
 *
 * @param <S> 
 */
interface Rollbackable<S extends ProcessSessionData<? extends ProcessInput, ? extends ProcessOutput>> {
	//rollbackMethod
	void rollback(S sessionData) throws RollbackException;
	
}
